home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
SWAG
/
SWAGA_C
/
ARCHIVES.SWG
/
0016_archive detection.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-05-25
|
1KB
|
62 lines
{
RS> Can anyone tell me where to find some source dealing with archive
RS> detection? I need to be able to determine what archival method was used
RS> on a file regardless of the extension..
Yep.
BTW: I cut it out of a source I made it for. I should compile as is. you might
have to "USES" dos and/or CRT.
----------------------------= CUT HERE =-------------------------------------
}
Type
ArchiveType = (ARJ,ZIP,UC2,LZH,UNKNOWN);
Function GetArchiveType (Name : String) : Archivetype;
Var F : File;
Buf: Word;
StrBuf : String [3];
Begin
GetArchiveType := UNKNOWN;
Assign (F,Name);
FileMode := 0;
Reset (F,1);
If IoResult <> 0 Then
Begin
Write ('Unable to access file - ');
WriteLn (Name);
Exit;
End;
BlockRead (F,Buf,2);
If Buf = $EA60 Then
Begin
GetArchiveType := ARJ;
Close (f);
Exit;
End;
If Buf = $4b50 Then
Begin
GetArchiveType := ZIP;
Close (f);
Exit;
End;
If Buf = $4355 Then
Begin
GetArchiveType := UC2;
Close (f);
Exit;
End;
BlockRead (F,StrBuf[1],3);
StrBuf[0] := #3;
If StrBuf = '-lh' Then
Begin
GetArchiveType := LZH;
Close (f);
Exit;
End;
End;